Prompt engineering
Prompt engineering neboli prompt inženýrství (zkráceně promptování[1]) je metodologie navrhování efektivních požadavků či dotazů (promptů) velkým jazykovým modelům (LLM). Jde o dílčí obor umělé inteligence a zpracování přirozeného jazyka. V prompt engineeringu jde o správnou formulaci úkolu, který má umělá inteligence (AI) provést, tak, aby výstup co nejlépe odpovídal očekávání zadavatele. „Učení založené na promptu“[2][3] lze chápat jako alternativu k doladění předtrénovaného modelu na konkrétní úlohu. Výhodou je, že není potřeba měnit samotný model, ale stačí mu v promptu explicitně komunikovat kontext, informace potřebné k provedené úkolu a požadavky na výstup, a model je schopen adekvátně reagovat.[4]
Historie
[editovat | editovat zdroj]Jazykové modely GPT-2 a GPT-3[5] byly důležitými kroky v prompt inženýrství. V roce 2021 multitask prompt inženýrství pomocí více datových sad NLP prokázalo dobrý výkon u nových úloh.[6] V metodě zvané chain-of-thought (CoT) byly jazykovému modelu poskytnuty tzv. few-shot příklady (technika ukázání modelu několik příkladů, tzv. shotů, toho, co uživatel chce, aby LLM udělal), což zlepšilo jeho schopnost uvažovat.[7] Široká dostupnost těchto nástrojů byla podpořena zveřejněním několika zápisníků s otevřeným zdrojovým kódem a komunitně vedených projektů pro syntézu obrázků.[8]
Popis zpracování promptů uvedl, že v únoru 2022 bylo k dispozici více než 2 000 veřejných promptů pro přibližně 170 datových sad.[9]
Techniky
[editovat | editovat zdroj]Ladění prefixů
[editovat | editovat zdroj]Prompt engineering může fungovat z velkého jazykového modelu (LLM), který je „zmrazen“ (v tom smyslu, že je předtrénovaný), kde se učí pouze reprezentace promptu (jinými slovy se LLM optimalizuje), pomocí metod jako „prefix-tuning“ nebo „prompt tuning“.[10][11]
Chain-of-thought
[editovat | editovat zdroj]Chain-of-thought prompting neboli promptování pomocí myšlenkového řetězce (Chain-of-thought prompting, zkr. CoT) zlepšuje schopnost uvažování LLM tím, že je podněcuje k vytvoření řady mezikroků, které vedou ke konečné odpovědi na vícekrokový problém.[zdroj?!] Tato technika byla poprvé navržena výzkumníky Google v roce 2022.[12][13]
Hlavní myšlenka CoT spočívá v tom, že ukázáním několika málo záběrů tzv. exemplářů (příkladů), kde se argumentace vysvětluje v exemplářích, LLM také ukáže proces uvažování při odpovídání na prompt. Toto vysvětlení uvažování často vede k přesnějším výsledkům.[zdroj?!]
Metoda
[editovat | editovat zdroj]Existují dva hlavní způsoby, jak vyvolat CoT: few-shot prompting a zero-shot prompting. Zero-shot prompting je nejzákladnější formou promptování. Uživatel modelu jednoduše ukáže prompt bez příkladů a požádá ho, aby vytvořil odpověď. Příkladem zero-shot promptu je:
Sečti 2+2
Jedná se o zero-shot, protože modelu nebyly neukázány žádné kompletní příklady.[zdroj?!]
Few-shot prompting je, když se modelu ukážou 2 nebo více příkladů. Analogií few-shot promptu výše uvedeného zero-shot promptu je:
Sečti 3+3: 6 Sečti 5+5: 10
Je to tak, protože se modelu ukázaly alespoň 2 úplné příklady (Sečti 3+3: 6
a Sečti 5+5: 10
). Obvykle platí, že čím více příkladů modelu ukážete, tím lepší bude výstup, proto se ve většině případů dává přednost few-shot promptingu před 0-shot a 1-shot promptingem[14] (neboli prompt s žádným a jedním příkladem).
Výzvy
[editovat | editovat zdroj]Zatímco uvažování CoT může zlepšit výkon úloh zpracování přirozeného jazyka, existují určité nevýhody. Modely LLM jsou často zkreslené směrem ke generování stereotypních odpovědí. Dokonce i při zavedení bezpečných ochranných prvků někdy generují toxické výstupy.[zdroj?!] Obzvlášť předpojaté jsou výsledky zero-shot promptingu.[15]
Retrieval-augmented generation
[editovat | editovat zdroj]Retrieval-augmented generation (RAG[16]) je metoda generování promptů obohacených o výstupy hledání v dokumentech. Předpokladem je databáze dokumentů relevantních pro danou oblast (pro její uložení a zpracování se v této oblasti používá např. služba Pinecone[17] nebo jiné vektorové databáze). Po obdržení uživatelského dotazu systém nejprve prohledá databázi dokumentů a nejrelevantnější odpovědi zahrne do promptu pro LLM jako kontext.[18] LLM tak může svou odpověď vygenerovat se znalostí informace obsažené ve vybraných dokumentech. To je užitečné zejména pokud se požadují odpovědi založené na informacích, které nebyly modelu dostupné při jeho trénování a ladění. Podkladové dokumenty také mohou být průběžně aktualizovány bez nutnosti cokoli dělat se samotným LLM.
Reference
[editovat | editovat zdroj]V tomto článku byl použit překlad textu z článku Prompt engineering na anglické Wikipedii.
- ↑ Promptování AI | Jak zkrotit Umělou Inteligenci. promptovani.cz [online]. [cit. 2024-09-02]. Dostupné online.
- ↑ RADFORD, Alec; WU, Jeffrey; CHILD, Rewon. Language Models are Unsupervised Multitask Learners.Chybí název periodika! 2019-01-01. QID: Q95726769.
- ↑ LIU, Pengfei; YUAN, Weizhe; FU, Jinlan. Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing.Chybí název periodika! 2021-07-28. QID: Q109286554. (English)
- ↑ FERRER, Josep. The Art of Prompt Engineering: Decoding ChatGPT [online]. kdnuggets.com [cit. 2023-06-20]. Dostupné online. (anglicky)[nedostupný zdroj]
- ↑ MANN, Benjamin; RYDER, Nick; SUBBIAH, Melanie. Language Models are Few-Shot Learners. arXiv, Advances in Neural Information Processing Systems 33. 2020-05-28. QID: Q95727440. DOI 10.48550/ARXIV.2005.14165. (English)
- ↑ SANH, Victor; WEBSON, Albert; RAFFEL, Colin. Multitask Prompted Training Enables Zero-Shot Task Generalization.Chybí název periodika! 2021-10-15. QID: Q108941092.
- ↑ WEI, Jason; WANG, Xuezhi; SCHUURMANS, Dale. Chain of Thought Prompting Elicits Reasoning in Large Language Models.Chybí název periodika! 2022-01-28. QID: Q111971110. DOI 10.48550/ARXIV.2201.11903. (English)
- ↑ [s.l.]: [s.n.] Dostupné online. ISBN 9781450391573. DOI 10.1145/3491102.3501825.
- ↑ BACH, Stephen H.; SANH, Victor; YONG, Zheng-Xin. PromptSource: An Integrated Development Environment and Repository for Natural Language Prompts.Chybí název periodika! 2022-02-02. QID: Q110839490.
- ↑ LI, Xiang Lisa; LIANG, Percy. Prefix-Tuning: Optimizing Continuous Prompts for Generation. In: Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing (Volume 1: Long Papers). [s.l.]: [s.n.], 2021-08-01. QID: Q110887424. DOI 10.18653/V1/2021.ACL-LONG.353. S. 4582–4597. (English)
- ↑ LESTER, Brian; AL-RFOU, Rami; CONSTANT, Noah. The Power of Scale for Parameter-Efficient Prompt Tuning. In: Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing. [s.l.]: [s.n.], 2021-11-01. QID: Q110887400. DOI 10.18653/V1/2021.EMNLP-MAIN.243. S. 3045–3059. (English)
- ↑ openreview.net. Dostupné online. arXiv 2201.11903.
- ↑ Dostupné online. (anglicky)
- ↑ Naučte se Promptování: Průvodce komunikací s umělou inteligencí. aipe.cz [online]. [cit. 2023-06-05]. Dostupné v archivu pořízeném z originálu dne 2023-06-05.
- ↑ YANG, Jingfeng; JIANG, Haoming; YIN, Qingyu. SEQZERO: Few-shot Compositional Semantic Parsing with Sequential Prompts and Zero-shot Models. In: Findings of the Association for Computational Linguistics: NAACL 2022. Stroudsburg, PA, USA: Association for Computational Linguistics, 2022. Dostupné online. DOI 10.18653/v1/2022.findings-naacl.5.
- ↑ SELVARAJ, Natassha. What is Retrieval Augmented Generation (RAG)? [online]. Datacamp [cit. 2024-01-24]. Dostupné online.
- ↑ THEVAPALAN, Arunn. A Beginner's Guide to The OpenAI API: Hands-On Tutorial and Best Practices [online]. Datacamp [cit. 2024-01-24]. Dostupné online.
- ↑ LEWIS, Patrick; PEREZ, Ethan; PIKTUS, Aleksandra; PETRONI, Fabio; KARPUKHIN, Vladimir; GOYAL, Naman; KÜTTLER, Heinrich. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. Advances in Neural Information Processing Systems. Curran Associates, Inc., 2020, s. 9459–9474. Dostupné online. arXiv 2005.11401.